package com.wms.data.domain.service.impl;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

import com.wms.data.dao.impl.MenuDaoImpl;
import com.wms.data.domain.service.MenuService;
import com.wms.data.pojo.Menu;

// ~ File Information
// ====================================================================================================================

@Service("menuService")
public class MenuServiceImpl extends AbstractServcieImpl<MenuDaoImpl, Menu, String>
	implements MenuService {

	// ~ Static Fields
	// ==================================================================================================================

	// ~ Fields
	// ==================================================================================================================

	// ~ Constructors
	// ==================================================================================================================

	// ~ Methods
	// ==================================================================================================================
	
	/**
	 * 获取主菜单List.
	 * 
	 * @return
	 */
	public List<Menu> getMainMenu() {
		
		return getDao().getListByLevel(Menu.PROP_LEVEL_MAIN);
	}
	
	/**
	 * 根据PID获取菜单List.
	 * 
	 * @param pid
	 * @return
	 */
	public List<Menu> getListByPID(String pid) {
		
		return getDao().getListByPid(pid);
	}

	@Override
	public Menu saveMenu(Menu menu) {
		
		if (StringUtils.isBlank(menu.getPid())) {
			
			menu.setLevel(Menu.PROP_LEVEL_MAIN);
		}
		else {
			
			menu.setLevel(Menu.PROP_LEVEL_SUB);
		}
		
		menu.setRemarks(menu.getName());
		
		this.saveOrUpdate(menu);
		
		return menu;
	}
	
	public void saveOrUpdate(Menu menu) {
		
		if (StringUtils.isNotBlank(menu.getId())) {
			
			this.update(menu);
		}
		else {
			
			String id = this.save(menu);
			
			menu.setId(id);
		}
	}
}